package com.fejal.dao;

import java.util.List;
import com.fejal.bean.Aluno;
import com.fejal.bean.Curso;

public interface AlunoDAO {
	
	/**
	 * Insere uma aluno no banco de dados
	 * @param aluno
	 * @return true se obeter sucesso, ou false se falhar.
	 * @throws Exception 
	 * @throws Exception
	 */
	public Aluno inserir(Aluno aluno) throws Exception ;
	
	/**
	 * Altera um aluno no banco de dados
	 * @param aluno
	 * @return
	 **/
	public boolean alterar(Aluno aluno)throws Exception  ;
	
	/**
	 * Excluir um aluno no banco de dados
	 * @param aluno
	 * @return
	 */
	public boolean excluir(Aluno aluno)throws Exception  ;
	

	/**
	 * Retorna uma lista de alunos
	 * @param nome
	 * @param matricula
	 * @param CPF
	 * @return
	 */
	public List<Aluno> getSelecionar(String nome, String matricula, String CPF);

	/**
	 * Retorna uma lista de alunos
	 * @param curso
	 * @return
	 */
	public List<Aluno> getSelecionar(Curso curso);

	/**
	 * Retorna uma instacia de Aluno com o codigoAluno passado no parametros
	 * @param codigoAluno
	 * @return Aluno
	 */
	public Aluno getAluno(int codigoAluno);
	
	
	/**
	 * Retorna uma instacia do aluno com a matricula passado no parametro
	 * @param matricula
	 * @return Aluno
	 */
	public Aluno getAluno(String matricula);
	
	
	/**
	 * Retorna uma lista de todas as alunos
	 * @return List
	 */
	public List<Aluno> getListTodos();

	public void inicialize(Aluno aluno);
}
